package com.colaiven.hbastest.service.task;

import com.colaiven.hbastest.utils.HBaseUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.util.*;

@Service
public class TruckTask {
    private static final Logger log = LoggerFactory.getLogger(TruckTask.class);
    private static List<String> cars;
    static{
        cars = new ArrayList<>();//模拟80个GPS设备
        cars.add("14145673049");cars.add("14145673054");cars.add("14145673030");cars.add("14144769982");
        cars.add("14144769918");cars.add("14144769994");cars.add("14144769903");cars.add("14144769965");
        cars.add("14144769948");cars.add("14144769949");cars.add("14144769932");cars.add("14144769959");
        cars.add("14144769990");cars.add("14144769986");cars.add("14144769945");cars.add("14144769952");
        cars.add("14144769950");cars.add("14144769913");cars.add("14144769944");cars.add("14144768561");
        cars.add("14144768606");cars.add("14144768614");cars.add("14144768581");cars.add("14144768599");
        cars.add("14144768564");cars.add("14144768542");cars.add("14144768586");cars.add("14144768578");
        cars.add("14144768604");cars.add("14144768546");cars.add("14144768541");cars.add("14144768548");
        cars.add("14144768605");cars.add("14144768552");cars.add("14144768554");cars.add("14144768596");
        cars.add("14144768616");cars.add("14144768603");cars.add("14144768591");cars.add("14144768577");
        cars.add("14144768582");cars.add("14144768612");cars.add("14144768583");cars.add("14144768587");
        cars.add("14144768562");cars.add("14144768566");cars.add("14144768573");cars.add("14144768576");
        cars.add("14144764658");cars.add("14144764655");cars.add("14144764697");cars.add("14144764645");
        cars.add("14144764650");cars.add("14144764637");cars.add("14144764639");cars.add("14144764670");
        cars.add("14144757761");cars.add("14144757747");cars.add("14144757773");cars.add("14144754916");
        cars.add("14144754944");cars.add("14144754905");cars.add("14144754871");cars.add("14144754919");
        cars.add("14144754989");cars.add("14144754950");cars.add("14144755008");cars.add("14144754992");
        cars.add("14144754986");cars.add("14144754930");cars.add("14144754954");cars.add("14144755009");
        cars.add("14144754885");cars.add("14144754996");cars.add("14144754987");cars.add("14144754914");
        cars.add("14144754931");cars.add("14144754927");cars.add("14144754956");cars.add("14144754960");
    }

    @Scheduled(cron = "0/10 * * * * ?")//每10秒
    public void truckTask() throws IOException {
        long startTime = System.currentTimeMillis();
        Random r = new Random();
        for (String terminalNo : cars) {
            long firstKey = Long.parseLong(terminalNo) % 100;       //用于决定数据存储在哪一个预分区
            String rowKey = firstKey + "_" + terminalNo + "_" + System.currentTimeMillis();
            Map<String, String> map = new LinkedHashMap<>();
            map.put("Longitude", r.nextFloat()*100+"");             //模拟轨迹数据
            map.put("latitude", r.nextFloat()*100+"");
            map.put("loadAd", r.nextInt(100000)+"");
            map.put("weight", r.nextInt(10)+"");
            map.put("speed", r.nextInt(10)+"");
            map.put("direction", r.nextInt(360)+"");
            HBaseUtil.insertRow("colaiven", rowKey, "truck", map);
        }
//        HBaseUtil.close();
        long endTime = System.currentTimeMillis();
        log.info("耗时"+(endTime-startTime)+"毫秒");
    }
}
